paravirtualisation features such as disk and network devices etc.
Some Xen vendors wish to provide alternative and/or additional guest drivers
-that can bind to virtual devices. This may be done using the Xen PCI vendor
-ID of 0x5853 and Xen-vendor/device specific PCI device IDs. This file
+that can bind to virtual devices[1]. This may be done using the Xen PCI
+vendor ID of 0x5853 and Xen-vendor/device specific PCI device IDs. This file
records reservations made within the device ID range in order to avoid
multiple Xen vendors using conflicting IDs.
0x0002 | Citrix XenServer (grandfathered allocation for XenServer 6.1)
0xc000-0xc0ff | Citrix XenServer
0xc100-0xc1ff | Citrix XenClient
+
+[1] Upstream QEMU provides a parameterized device called xen-pvdevice that
+ can be used to host guest drivers. Execute:
+
+ qemu-system-i386 -device xen-pvdevice,help
+
+ for a list of all parameters. The following parameters are relevant to
+ driver binding:
+
+ vendor-id (default 0x5853): The PCI vendor ID and subsystem vendor
+ ID of the device.
+ device-id (must be specified): The PCI device ID and subsystem device
+ ID of the device.
+ revision (default 0x01): The PCI revision of the device
+
+ Also the size parameter (default 0x400000) can be used to specify the
+ size of the single MMIO BAR that the device exposes. This area may be
+ used by drivers for mapping grant tables, etc.
+
+ Note that the presence of the Xen Platform PCI device is generally a
+ pre-requisite for an additional xen-pvdevice as it is the platform
+ device that provides that IO ports necessary for unplugging emulated
+ devices. See hvm-emulated-unplug.markdown for details of the IO ports
+ and unplug protocol.
+
+ libxl provides support for creation of a single additional xen-pvdevice.
+ See the vendor_device parameter in xl.cfg(5).